En el siguiente trabajo analizaremos las menciones que reciben las vacunas SputnikV y Pfizer en twitter. Para ello, descargamos cada dos días 18.000 mil tweets, por vacuna. Luego filtramos por los países que son de nuestro interes para analizar: los limítrofes a Argentina, dejando de lado a Brasil ya que su idioma es el portugues.
A través de dichos tweets, buscabamos analizar varias cosas:
Por un lado, cuantificar las menciones por día que se realizaban de cada vacuna y para cada país limítrofe a Argentina. A su vez, al gráfico de Argentina le agregamos hitos que nos daban una respuesta a los picos de menciones.
Por otro lado, quisimos analizar cuál era la dinámica en twitter para tratar de entender cómo se forman/llevan adelante las conversaciones.
2.1 Dado que la mayoría de los tweets que circulan son retweets, quisimos tratar de entender quienes eran los formadores de opinión (siempre dentro de nuestro dataset)
Asimismo, analizamos cuáles son las palabras que se utilizan con más frecuencia cuando se menciona a una u otra vacuna.
Analizamos también cuáles eran los sentimientos que se desprenden de dichos tweets.
Para empezar a analizar un poco los tweets, creemos necesario realizar algunos graficos comparativos que nos permitan sacar conclusiones. En este caso, vamos a enfocarnos en cuantificar la cantidad de tweets que mencionan la vacuna Pfizer como SputnikV, por día y país.
Como parte de la limpieza de los tweets descargados, decidimos quedarnos unicamente con aquellos países limitrofes a Argentina, salvo Brasil (porque es de habla portuguesa y le pedimos a la api todos los de hispanoparlantes)
Ahora bien, creemos los df que correspondan a cada país. Para ello, le agregamos una variable nueva, “Pais”, donde incorporamos el nombre del país abreviado (que luego nos va a servir para graficar)
Utilicemos la función fn_agrupar para agrupar nuestros df según tipo de vacuna y fecha.
Primero unamos los df, donde incluimos una columna de “país”
## Warning: `group_by_()` is deprecated as of dplyr 0.7.0.
## Please use `group_by()` instead.
## See vignette('programming') for more help
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_warnings()` to see where this warning was generated.
Al comparar los gráficos, podemos observar variaciones en la cantidad de menciones de cada vacuna por país. Esto puede estar relacionado a los acuerdos y vacunas que arribaron o arribarán en cada uno. Lo vemos claramente en Argentina, donde la vacuna SputnikV logra mayor importancia al tener más menciones debido a que es la vacuna que recibiremos, a comparación de Chile que tiene mayores menciones de la vacuna Pfizer ya que es con la que están vacunando.
## Saving 7 x 5 in image
Antes de seguir, analicemos un poco lo que vimos recien: de la visualización general de los datos se puede observar que los picos de tweets coinciden con dos sucesos de importancia para la opinión pública: el arribo de la vacuna sputnikV a Argentina el dia 24/12/20 con 4023 tweets y con el día de inicio de la vacunación el día 29/12/20 con 4399 tweets.
Por otro lado, también se observa que si bien la vacuna Pfizer no pudo ser traída a Argentina ni mucho menos empezar un esquema de vacunación para la población, los tweets que la mencionan coinciden con la fecha relevante para la vacuna sputnikV (29/12/20). De esta forma, se podría pensar que hay una relación simétrica entre las menciones de la vacuna sputnik y la vacuna de Pfizer. Esta cuestión, podría deberse al alto grado de polarización y politización mediática que existe entre la eficacia y utilización de ambas vacunas.
Ahora bien, indaguemos un poco la dinamica de twitter en relación a nuestro dataset Argentino. En este paso vamos a usar el df que une los tweets de pfizer y sputnik - DF ARGENTINA, que incluye los RT.
Cuando se analiza a los tweets por categoría, dividiendolos en tres categorías, condiseramos a: orgánicos como los tweets “originales”, “respuestas” a las respuestas de los tweets que mencionan a las vacunas y “retweets” (valga la redundancia) a los retweets.
Aqui se observa que la mayor cantidad de tweets, son retweets (79%). Esta cuestión nos muestra que el efecto cascada realizado por líderes de opinión (calvo, 2015) es muy fuerte, ya que los tweets originales solo corresponden al 15 %.
Para realizar este analisis, debemos utilizar df sin RT. Para ello, realizamos el df global, y luego a parte, lo filtramos por los valores que son de nuestro interes.
El tweet con más rt y más favoritos de nuestro dataset de pfizer es el de Vivaroca2015:
“el único país con el que pfizer tiene problemas es argentina pero alberto pretende que le creamos que la culpa es del laboratorio en verdad piensa que todos tenemos el mismo nivel intelectual de sus votantes” Si bien no es una cuenta verificada, observamos que tiene 45672 followers, por lo tanto, una gran llegada en la red social.
El tweet que le sigue según favoritos es guarda_la_moto con:
“estamos negociando con pfizer pero ellos tienen algunos problemas logísticos tienen que pedirle permiso al que tiene sombrero de mapache primero”
Sin embargo, la cantidad de rt no es significante.
El siguiente tweet más rt es el de edufeiok:
“esta gente es muy delirante se pasan de listos con el relato un médico asesor de axel kicillof dijo que pfizer pidió de garantía glaciares y permisos de pesca para traer su vacuna al país”.
En este caso, si es una cuenta verificada, con 711125 de followers.
En el caso de sputnik, el tweet con más rt y favoritos es de carlavizzotti:
“el gobierno argentino adquirió al fondo de inversión directa de rusia millones de esquemas de vacuna sputnik v millones de dosis que llegarán en función del contrato firmado entre los meses de diciembre y marzo”
Su cuenta es verificada y tiene 42121 seguidores.
El segundo tweet con más favoritos, pero pocos rt, es gonchobanzas, con 329374 seguidores.
“me vacuné con la sputnik y esta todo bien adjunto selfie”
Vamos a realizar un analisis de las palabras más mencionadas, tanto para los tweets que mencionan a pfizer como para los que mencionan a sputnikV. Para eso utilizaremos el df sin rt de argentina.
Bien, ahora genero un corpus con todas las palabras, para cada país. Utilizo la función fn_tokenizar
Ahora bien, realicemos el analisis de las palabras más mencionadas. Primero creamos un df con los stops words
Bien, ahora saco los stop words
Ahora veamos la frecuencia de palabras en el corpus a traves de la función fn_frecuencia
Ploteamos las palabras más frecuentes
En cuanto al análisis de las palabras que se utilizan más frecuentemente, se observa, descartando la primera plabra más utilizada, “Pfizer” con 2799 observaciones, le sigue “vacuna” con 1274 observaciones. La tercer palabra más utilizada es “sputnik” con 309 observaciones. Esta situación, sugiere que cuando se refieren a Pfizer se la contrapone frente a otra. Esta última consideración podría reafirmar la conjetura sobre la polarización y politización existente entre el uso o no de una o otra vacuna.
Al igual que Pfizer, la primera palabra más utilizada es el nombre de la vacuna con 6551 observaciones y la palabra “vacuna” con 2882 observaciones. Ahora bien, lo que sí llama la atención, es que a diferencia de la Pfizer, aparecen dos países con una cantidad de menciones alta: Rusia con 630 y Argentina 602 observaciones. Esta evidencia, muestra que la politización y polarización alrededor de la vacuna Sputnik V ocurre fuertemente.Incluso si uno observa la nube de palabras pugede encontrar que aparecen varios nombres de funcionarios de este país como “ginés”, “kicillof”, “vizzoti”.
Realicemos una WordCloud para cada vacuna, montrando las palabras que se mencionan en los tweets.
## `summarise()` ungrouping output (override with `.groups` argument)
## Joining, by = "vacuna"
## Selecting by tf_idf
Ahora realizemos un sentiment analisys para ver cuál es el sentimiento mayoritario.
Cruzo con mi lexicón de sentimientos y empiezo a ver la distribución de sentimientos en los discursos
## Warning in data(sentimientos, package = NULL, envir = environment()): data set
## 'sentimientos' not found
## Joining, by = "word"
## sentimiento n
## 1 negativo 2667
## 2 positivo 1982
## 3 miedo 1273
## 4 confianza 1124
## 5 ira 1071
## 6 tristeza 1011
## 7 disgusto 929
## 8 premonición 771
## 9 alegría 621
## 10 asombro 477
## Warning in data(sentimientos, package = NULL, envir = environment()): data set
## 'sentimientos' not found
## Joining, by = "word"
## sentimiento n
## 1 negativo 1715
## 2 positivo 751
## Warning in data(sentimientos, package = NULL, envir = environment()): data set
## 'sentimientos' not found
## Joining, by = "word"
## Warning in data(sentimientos, package = NULL, envir = environment()): data set
## 'sentimientos' not found
## Joining, by = "word"
Vamos a realizar un topic modeling para los tweets con ubicación en Argentina.
Para realizar topic modeling primero debo generar una matriz término-documento.
Ahora aplico mi topic modelling y utilizo la función LDA() (latent dirichlet allocation)
Genero la matriz término documento
Ahora aplico mi topic modelling